home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Cube 1 & 2 / Multimedia Cube - Disc 2.iso / wfs.inc < prev    next >
Text File  |  1996-03-01  |  35KB  |  821 lines

  1. ''
  2. '' Wired for Sound 95 CD-specific install functions
  3. '' Copyright ⌐ 1995 Aristosoft, Inc.
  4. ''
  5.  
  6. '' Globals:
  7. GLOBAL ADDir$    '' After Dark's directory
  8. GLOBAL SSDir$    '' SceneSaver directory
  9. GLOBAL SSAsk%    '' Did we ask user where to stick AD files?
  10. GLOBAL SSRes%    '' Result of query
  11.  
  12. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  13.  
  14. '' Set up product-specific titles, etc.
  15. SUB SetProductTitles STATIC
  16.     SetTitle "Wired for Sound Pro CD"
  17.     WFSAPP$ = "WFS Pro"
  18. END SUB
  19.  
  20.  
  21. FUNCTION InfFile() STATIC AS STRING
  22.     InfFile = "WFS.INF"
  23. END FUNCTION
  24.  
  25.  
  26. FUNCTION MakeInstDir(D$) STATIC AS STRING
  27.  
  28.     '' If we're lucky, this will tell us where we're located
  29.     S$ = GetIniKeyString(WININI$, "Aristosoft", "WFS")
  30.  
  31.     '' If that didn't work, then try this for 2.02
  32.     IF S$ = "" THEN
  33.     S$ = GetIniKeyString(WININI$, "Sound API", "MaleVoice")
  34.     S$ = mid$(S$, 1, len(S$) - len("\VOICE3.VOI"))
  35.     END IF
  36.  
  37.     '' If that didn't work, then we'll punt with the default
  38.     IF S$ = "" THEN
  39.     S$ = D$ + ":\WFSOUND"
  40.     END IF
  41.  
  42.     '' WFSOUND.INF must be in any installed WFS product
  43.     IF EXISTS(MakePath(S$, "WFSOUND.INF")) THEN
  44.         r% = DoMsgBox("An installed copy of Wired for Sound, Talking Icons, or CD Mania was found in " + S$+ ".", "Wired for Sound", MB_OK)
  45.     END IF
  46.  
  47.     '' Find out where to install .AD files, if anywhere
  48.     ADDir$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  49.     IF EXISTS(MakePath(ADDir$, "AD.EXE")) THEN
  50.     '' We need to ask the user where to put the AD files
  51.     SSAsk% = 0
  52.     ELSE
  53.     '' No need to ask, since they go in DEST$
  54.     ADDir$ = ""
  55.     SSAsk% = -1
  56.     SSRes = IDNO
  57.     END IF
  58.  
  59.     MakeInstDir = S$
  60. END FUNCTION
  61.  
  62.  
  63. SUB AddInfSectionNames(BASE$, TAPPS$, SOUNDS$, VOICES$, BASEINST$, TAPPSINST$, SOUNDSINST$, VOICESINST$) STATIC
  64.  
  65.     '' These are the base files we can install
  66.     AddListItem BASE$, "Base Files"
  67.     IF GetWindowsVersionCorrectly >= MakeVer(3,95) THEN
  68.         AddListItem BASE$, "Base Files 32"
  69.     ENDIF
  70.     SetSymbolValue BASEINST$, GetSymbolValue(BASE$)
  71.  
  72.     '' These are the Talking Apps we can install
  73.     AddListItem TAPPS$, "CD Browser"
  74.     AddListItem TAPPS$, "Cursor Changer"
  75.     AddListItem TAPPS$, "Icon Editor"
  76.     AddListItem TAPPS$, "IconMotion"
  77.     AddListItem TAPPS$, "Intruder Alert"
  78.     AddListItem TAPPS$, "MediaScape Changer"
  79.     AddListItem TAPPS$, "MouseMeter"
  80.     AddListItem TAPPS$, "Multimedia Jukebox"
  81.     AddListItem TAPPS$, "Multimedia Screen Saver"
  82.     AddListItem TAPPS$, "Post This!"
  83.     AddListItem TAPPS$, "Talking Calculator"
  84.     AddListItem TAPPS$, "Talking Clock"
  85.     AddListItem TAPPS$, "Talking Minesweeper"
  86.     AddListItem TAPPS$, "Talking Monitor"
  87.     AddListItem TAPPS$, "Talking PIM"
  88.     AddListItem TAPPS$, "Talking Solitaire"
  89.     AddListItem TAPPS$, "Wallpaper Changer"
  90.     AddListItem TAPPS$, "Windows FX"
  91.     AddListItem TAPPS$, "WFS Sound Editor"
  92.     AddListItem TAPPS$, "El Capitan SceneSaver"
  93.     AddListItem TAPPS$, "Lake SceneSaver"
  94.     AddListItem TAPPS$, "Snow SceneSaver"
  95.     AddListItem TAPPS$, "Waterfall SceneSaver"
  96.  
  97.     '' By default, we install all Talking Apps
  98.     SetSymbolValue TAPPSINST$, GetSymbolValue(TAPPS$)
  99.  
  100.     '' These are obsolete for Windows 95
  101.     AddListItem TAPPS$, "Groupie"
  102.     AddListItem TAPPS$, "Icon Changer"
  103.     AddListItem TAPPS$, "Talking Graveyard"
  104.     IF GetWindowsVersionCorrectly < MakeVer(3,95) THEN
  105.         AddListItem TAPPSINST$, "Groupie"
  106.         AddListItem TAPPSINST$, "Icon Changer"
  107.         AddListItem TAPPSINST$, "Talking Graveyard"
  108.     ENDIF
  109.  
  110.     '' This was obsolete long ago
  111.     AddListItem TAPPS$, "Talking Calendar"
  112.  
  113.     '' These are the sounds we can install
  114.     AddListItem SOUNDS$, "Button Sounds"
  115.     AddListItem SOUNDS$, "Cartoon Sounds"
  116.     AddListItem SOUNDS$, "Funny Sounds"
  117.     AddListItem SOUNDS$, "Human Sounds"
  118.     AddListItem SOUNDS$, "Icon Sounds"
  119.     AddListItem SOUNDS$, "Job Saver Sounds"
  120.     AddListItem SOUNDS$, "Misc. Sounds"
  121.     AddListItem SOUNDS$, "Musical Sounds"
  122.     AddListItem SOUNDS$, "People Sounds"
  123.     AddListItem SOUNDS$, "Phrase Sounds"
  124.     AddListItem SOUNDS$, "Ringing Sounds"
  125.  
  126.     '' By default, we install all the above
  127.     SetSymbolValue SOUNDSINST$, GetSymbolValue(SOUNDS$)
  128.  
  129.     '' Only include this file if we can find the Star Trek DLL
  130.     st$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  131.     IF EXISTS(MakePath(st$, "st_res\st_snd.dll")) THEN
  132.     AddListItem SOUNDSINST$, "Star Trek Stubs"
  133.     END IF
  134.  
  135.     '' ...but it's always an option
  136.     AddListItem SOUNDS$, "Star Trek Stubs"
  137.  
  138.     '' The user probably doesn't want all these on the HD by default
  139.     AddListItem SOUNDS$, "Video Samples"
  140.     AddListItem SOUNDS$, "Animal Sounds"
  141.     AddListItem SOUNDS$, "Destructive Sounds"
  142.     AddListItem SOUNDS$, "Drums and Cymbals"
  143.     AddListItem SOUNDS$, "Equipment Sounds"
  144.     AddListItem SOUNDS$, "Illness Sounds"
  145.     AddListItem SOUNDS$, "Impact Sounds"
  146.     AddListItem SOUNDS$, "Popping Sounds"
  147.     AddListItem SOUNDS$, "Ripping and Tearing"
  148.     AddListItem SOUNDS$, "Nuts & Bolts"
  149.     AddListItem SOUNDS$, "Sports Sounds"
  150.     AddListItem SOUNDS$, "Word Sounds"
  151.  
  152.     AddListItem SOUNDS$, "Bach MIDI"
  153.     AddListItem SOUNDS$, "Beethoven MIDI"
  154.     AddListItem SOUNDS$, "Classical MIDI"
  155.     AddListItem SOUNDS$, "Handel MIDI"
  156.     AddListItem SOUNDS$, "Jazz MIDI"
  157.     AddListItem SOUNDS$, "Long Classical MIDI"
  158.     AddListItem SOUNDS$, "Misc. MIDI"
  159.     AddListItem SOUNDS$, "Mozart MIDI"
  160.     AddListItem SOUNDS$, "New Age MIDI"
  161.     AddListItem SOUNDS$, "Pleasant MIDI"
  162.     AddListItem SOUNDS$, "R & B MIDI"
  163.     AddListItem SOUNDS$, "Tchaikovsky MIDI"
  164.     AddListItem SOUNDS$, "Vivaldi MIDI"
  165.  
  166.     '' We can install all these voices and faces
  167.     '' AddListItem VOICES$, "Female Voice"
  168.     AddListItem VOICES$, "Female Face"
  169.     AddListItem VOICES$, "Kelly Face"
  170.  
  171.     '' By default, we install all the above
  172.     SetSymbolValue VOICESINST$, GetSymbolValue(VOICES$)
  173.  
  174.     '' These aren't in the default install
  175.     AddListItem VOICES$, "Male Face"
  176.     AddListItem VOICES$, "Male Voice (compressed)"
  177.  
  178.     AddListItem VOICES$, "NY Female Voice"
  179.     AddListItem VOICES$, "NY Male Voice"
  180.     AddListItem VOICES$, "Southern Female Voice (compressed)"
  181.     AddListItem VOICES$, "Southern Male Voice (compressed)"
  182.  
  183.     AddListItem VOICES$, "British Female Voice (compressed)"
  184.     AddListItem VOICES$, "Sultry Female Face"
  185.     AddListItem VOICES$, "Sultry Female Face (compressed)"
  186.     AddListItem VOICES$, "Sultry Female Voice (compressed)"
  187.  
  188.     AddListItem VOICES$, "Female Chinese Voice"
  189.     AddListItem VOICES$, "Female German Voice (compressed)"
  190.     AddListItem VOICES$, "Female Italian Voice (compressed)"
  191.     AddListItem VOICES$, "Female Japanese Voice (compressed)"
  192.     AddListItem VOICES$, "Female Spanish Voice (compressed)"
  193.     AddListItem VOICES$, "Female Swedish Voice (compressed)"
  194.  
  195.     ''AddListItem VOICES$, "Male French Voice (compressed)"
  196.  
  197.     AddListItem VOICES$, "Monty Scot Voice (compressed)"
  198.     AddListItem VOICES$, "Packard Voice (compressed)"
  199.     AddListItem VOICES$, "Solo Voice (compressed)"
  200.     AddListItem VOICES$, "Smirk Voice (compressed)"
  201.     AddListItem VOICES$, "PAL 2001 Voice (compressed)"
  202.     AddListItem VOICES$, "Dr. Bonehead Voice (compressed)"
  203.  
  204.     AddListItem VOICES$, "Talking Arnold Voice (compressed)"
  205.     AddListItem VOICES$, "Talking Arnold Face"
  206.     AddListItem VOICES$, "Talking Arnold Face (compressed)"
  207.     AddListItem VOICES$, "Talking Clinton Voice (compressed)"
  208.     AddListItem VOICES$, "Talking Clinton Face"
  209.     AddListItem VOICES$, "Talking Clinton Face (compressed)"
  210.     AddListItem VOICES$, "Talking Harold Voice (compressed)"
  211.     AddListItem VOICES$, "Talking Harold Face"
  212.     AddListItem VOICES$, "Talking Harold Face (compressed)"
  213.     AddListItem VOICES$, "Talking H. George Voice (compressed)"
  214.     AddListItem VOICES$, "Talking H. George Face"
  215.     AddListItem VOICES$, "Talking H. George Face (compressed)"
  216.     AddListItem VOICES$, "Talking H. Ross Voice (compressed)"
  217.     AddListItem VOICES$, "Talking H. Ross Face"
  218.     AddListItem VOICES$, "Talking H. Ross Face (compressed)"
  219.     AddListItem VOICES$, "Talking H. Simmons Voice (compressed)"
  220.     AddListItem VOICES$, "Talking H. Simmons Face"
  221.     AddListItem VOICES$, "Talking H. Simmons Face (compressed)"
  222.     AddListItem VOICES$, "Talking Marge Voice (compressed)"
  223.     AddListItem VOICES$, "Talking Marge Face"
  224.     AddListItem VOICES$, "Talking Marge Face (compressed)"
  225.     AddListItem VOICES$, "Nerd Face"
  226.     AddListItem VOICES$, "Nerd Face (compressed)"
  227.     AddListItem VOICES$, "Synthesized Voice"
  228.  
  229.     AddListItem VOICES$, "Computer Face"
  230.     AddListItem VOICES$, "Alien One Face"
  231.     AddListItem VOICES$, "Alien Two Face"
  232.     AddListItem VOICES$, "Alien Three Face"
  233.     AddListItem VOICES$, "Cyberman Face"
  234.     AddListItem VOICES$, "Hillbilly Bob Face"
  235.     AddListItem VOICES$, "Make-Your-Own Voice"
  236.     AddListItem VOICES$, "WFS Face"
  237.  
  238. END SUB
  239.  
  240.  
  241. SUB RecalcPath STATIC
  242.     CursorSave% = ShowWaitCursor()
  243.     RecalcOptFiles BASEFILES
  244.     RecalcOptFiles SOUNDFILES
  245.     RecalcOptFiles TAPPFILES
  246.     RecalcOptFiles VOICEFILES
  247.     RestoreCursor CursorSave%
  248. END SUB
  249.  
  250.  
  251. SUB AddOptFiles STATIC
  252.     AddOptFilesToCopyList BASEFILES
  253.     AddOptFilesToCopyList TAPPFILES
  254.     AddOptFilesToCopyList SOUNDFILES
  255.     AddOptFilesToCopyList VOICEFILES
  256. END SUB
  257.  
  258.  
  259. SUB AddOptFilesToCopyList (ftype%) STATIC
  260.  
  261.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  262.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  263.     IF ftype% = BASEFILES THEN
  264.         ''Base files
  265.         l% = GetListLength(BASEINST$)
  266.         FOR i% = 1 TO l% STEP 1
  267.         AddSectionFilesToCopyList GetListItem(BASEINST$, i%), MakePath(SrcDir$, "WFS"), DEST$
  268.         NEXT i%
  269.  
  270.         AddSectionKeyFileToCopyList "System Files", "SPRLIB", MakePath(SrcDir$, "WFS"), SYSDIR$
  271.  
  272.         '' Install default voices and faces
  273.         AddSectionFilesToCopyList "Null Face", SrcDir$, DEST$
  274.         AddSectionFilesToCopyList "Female Voice (compressed)", SrcDir$, DEST$
  275.         AddSectionFilesToCopyList "Read Me", SrcDir$, DEST$
  276.  
  277.         '' Install Video for Windows runtime
  278.         AddSectionFilesToCopyList "VfW Runtime", MakePath(SrcDir$, "WFS\VFW"), SYSDIR$
  279.         AddSectionFilesToCopyList "OLE2", MakePath(SrcDir$, "WFS\VFW"), SYSDIR$
  280.         AddSectionFilesToCopyList "ACM Drivers", MakePath(SrcDir$, "WFS\VFW"), SYSDIR$
  281.         AddSectionFilesToCopyList "MPlayer", MakePath(SrcDir$, "WFS\VFW"), WINDIR$
  282.         AddSectionFilesToCopyList "AVICodecs", MakePath(SrcDir$, "WFS\VFW"), SYSDIR$
  283.         AddSectionFilesToCopyList "Indeo-ini", MakePath(SrcDir$, "WFS\VFW"), WINDIR$
  284.  
  285.         IF INSTDSOUND% OR EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  286.         AddSpecialFileToCopyList "DSOUND Files", "DSOUND", SrcDir$, MakePath(SYSDIR$, "DSOUND.DLL")
  287.         AddSpecialFileToCopyList "DSOUND Files", "DSCPL", SrcDir$, MakePath(SYSDIR$, "DSCPL.CPL")
  288.         END IF
  289.  
  290.     ELSEIF ftype% = TAPPFILES THEN
  291.         '' Decide where SceneSaver files go
  292.         IF SSAsk% = 0 THEN
  293.         SSAsk% = -1
  294.         SSRes% = DoMsgBox("Setup has located a copy of After Dark in " + ADDir$ + ".  Do you want to use the SceneSavers with After Dark?", "Talking Icons", MB_YESNO)
  295.         END IF
  296.  
  297.         IF SSRes% = IDYES THEN
  298.         SSDir$ = ADDir$
  299.         ELSE
  300.         SSDir$ = DEST$
  301.         END IF
  302.  
  303.         l% = GetListLength(TAPPSINST$)
  304.         FOR i% = 1 TO l% STEP 1
  305.         s$ = GetListItem(TAPPSINST$, i%)
  306.  
  307.         SELECT CASE s$
  308.             CASE "El Capitan SceneSaver"
  309.             AddSectionKeyFileToCopyList "SCR", "ElCap", MakePath(SrcDir$, "WFS"), WINDIR$
  310.             AddSectionKeyFileToCopyList "AD", "ElCap", MakePath(SrcDir$, "WFS"), SSDir$
  311.             CASE "Waterfall SceneSaver"
  312.             AddSectionKeyFileToCopyList "SCR", "WFall", MakePath(SrcDir$, "WFS"), WINDIR$
  313.             AddSectionKeyFileToCopyList "AD", "WFall", MakePath(SrcDir$, "WFS"), SSDir$
  314.             CASE "Lake SceneSaver"
  315.             AddSectionKeyFileToCopyList "SCR", "Lake", MakePath(SrcDir$, "WFS"), WINDIR$
  316.             AddSectionKeyFileToCopyList "AD", "Lake", MakePath(SrcDir$, "WFS"), SSDir$
  317.             CASE "Snow SceneSaver"
  318.             AddSectionKeyFileToCopyList "SCR", "Snow", MakePath(SrcDir$, "WFS"), WINDIR$
  319.             AddSectionKeyFileToCopyList "AD", "Snow", MakePath(SrcDir$, "WFS"), SSDir$
  320.             CASE "IconMotion"
  321.             AddSectionFilesToCopyList "Animated Icons", MakePath(SrcDir$, "WFS"), DEST$
  322.                         AddSectionFilesToCopyList s$, MakePath(SrcDir$, "WFS"), DEST$
  323.                     CASE "Cursor Changer"
  324.                         IF GetWindowsVersionCorrectly() < MakeVer(3,95) THEN
  325.                             AddSectionFilesToCopyList "Cursor Changer", MakePath(SrcDir$, "WFS"), DEST$
  326.                         ELSE
  327.                             AddSectionFilesToCopyList "Cursor Changer 32", MakePath(SrcDir$, "WFS"), DEST$
  328.                         ENDIF
  329.                         AddSectionFilesToCopyList "Cursor Changer Help", MakePath(SrcDir$, "WFS"), DEST$
  330.                     CASE ELSE
  331.             AddSectionFilesToCopyList s$, MakePath(SrcDir$, "WFS"), DEST$
  332.         END SELECT
  333.         NEXT i%
  334.  
  335.         IF StringInList("Talking Calculator", TAPPSINST$) THEN
  336.         AddSpecialFileToCopyList "System Files", "LCD Font (VGA)", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "LCD.FON")
  337.         AddSpecialFileToCopyList "System Files", "LCD Font (8514a)", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "LCDBIG.FON")
  338.         END IF
  339.  
  340.         IF StringInList("Jukebox", TAPPSINST$) THEN
  341.         AddSpecialFileToCopyList "System Files", "MMSSSCR", MakePath(SrcDir$, "WFS"), MakePath(WINDIR$, "MMSSSCR.SCR")
  342.         END IF
  343.  
  344.         IF StringInList("Wallpaper Changer", TAPPSINST$) THEN
  345.         AddSectionFilesToCopyList "Patterns", SrcDir$, DEST$
  346.         END IF
  347.  
  348.             IF StringInList("Talking PIM", TAPPSINST$) THEN
  349.                 AddSectionFilesToCopyList "TPIM Backgrounds", SrcDir$, DEST$
  350.         END IF
  351.  
  352.         ELSEIF ftype% = SOUNDFILES THEN
  353.         l% = GetListLength(SOUNDSINST$)
  354.         FOR i% = 1 TO l% STEP 1
  355.         AddSectionFilesToCopyList GetListItem(SOUNDSINST$, i%), SrcDir$, DEST$
  356.         NEXT i%
  357.  
  358.     ELSEIF ftype% = VOICEFILES THEN
  359.         l% = GetListLength(VOICESINST$)
  360.         FOR i% = 1 TO l% STEP 1
  361.         AddSectionFilesToCopyList GetListItem(VOICESINST$, i%), SrcDir$, DEST$
  362.         NEXT i%
  363.     END IF
  364.     SrcDir$ = ""
  365.     END IF
  366.  
  367. END SUB
  368.  
  369.  
  370. SUB SetDriveStatus STATIC
  371.     FITS% = 0
  372.     drive$ = MID$(DEST$, 1, 1)
  373.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  374.  
  375.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  376.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  377.     cost& = cost& + VAL(GetListItem(TAPPNEEDS$, ndrive%))
  378.     cost& = cost& + VAL(GetListItem(VOICENEEDS$, ndrive%))
  379.  
  380.     free& = GetFreeSpaceForDrive(drive$)
  381.     IF cost& > free& THEN
  382.     FITS% = 1
  383.     END IF
  384.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  385.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  386.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  387.  
  388.     IF drive$ = WINDRIVE$ THEN
  389.     ReplaceListItem DRIVETEXT$, 4, ""
  390.     ReplaceListItem DRIVETEXT$, 5, ""
  391.     ReplaceListItem DRIVETEXT$, 6, ""
  392.     ELSE
  393.     ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  394.  
  395.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  396.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  397.     cost& = cost& + VAL(GetListItem(TAPPNEEDS$, ndrive%))
  398.     cost& = cost& + VAL(GetListItem(VOICENEEDS$, ndrive%))
  399.  
  400.     IF cost& = 0 THEN
  401.         ReplaceListItem DRIVETEXT$, 4, ""
  402.         ReplaceListItem DRIVETEXT$, 5, ""
  403.         ReplaceListItem DRIVETEXT$, 6, ""
  404.     ELSE
  405.         free& = GetFreeSpaceForDrive(WINDRIVE$)
  406.         IF cost& > free& THEN
  407.         FITS% = 1
  408.         END IF
  409.         ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  410.         ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  411.         ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  412.     END IF
  413.     END IF
  414. END SUB
  415.  
  416.  
  417. '' Add billboard dialogs for this app
  418. SUB AddBillboards STATIC
  419.     AddToBillboardList CUIDLL$, BBD1, "FModelessDlgProc", 100
  420.     AddToBillboardList CUIDLL$, BBD2, "FModelessDlgProc", 100
  421.     AddToBillboardList CUIDLL$, BBD3, "FModelessDlgProc", 100
  422.     AddToBillboardList CUIDLL$, BBD4, "FModelessDlgProc", 100
  423.     AddToBillboardList CUIDLL$, BBD5, "FModelessDlgProc", 100
  424.     AddToBillboardList CUIDLL$, BBD6, "FModelessDlgProc", 100
  425. END SUB
  426.  
  427.  
  428. CONST IDC_OWNER = 104
  429. CONST IDC_WORKPLACE = 106
  430. CONST RT_RCDATA = 10
  431.  
  432. SUB ConfigureApps STATIC
  433.  
  434.     '' This is so Fixer can find where we're installed
  435.     CreateIniKeyValue WININI$, "Aristosoft", "WFS", DEST$, cmoOverwrite
  436.  
  437.     '' This is the name of the group we'll install into
  438.     GROUP$ = "WFS Pro CD"
  439.     GROUP1$ = "WFS Utilities"
  440.     GROUP2$ = "Talking Apps"
  441.  
  442.     '' Configure base applications
  443.     IF GetListItem(CHECKSTATES$, BASEFILES) = "ON" THEN
  444.     '' Create/update location.cdf
  445.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  446.     res% = Run("cdfinst.exe " + MakePath(SrcDir$, "VOCFAC.LOC") + " " + SrcDir$ + " " + DEST$)
  447.  
  448.     '' Create a group for us...
  449.     CreateProgmanGroup GROUP$, "", cmoNone
  450.     CreateProgmanGroup GROUP1$, "", cmoNone
  451.     CreateProgmanGroup GROUP2$, "", cmoNone
  452.  
  453.     '' Setup WFS Pro
  454.     CreateProgmanItem GROUP$, WFSAPP$, MakePath(DEST$, "wfsound.exe"), "", cmoOverwrite
  455.     CreateProgmanItem GROUP$, "Configuration Editor", MakePath(DEST$, "wfsconf.exe"), "", cmoOverwrite
  456.  
  457.     '' On-line docs
  458.     CreateProgmanItem GROUP$, "Read Me!", "write.exe " + MakePath(DEST$, "readme.wri"), "", cmoOverwrite
  459.     CreateProgmanItem GROUP$, "Manual part 1", "write.exe " + MakePath(SrcDir$, "1wfsp50m.wri"), "", cmoOverwrite
  460.     CreateProgmanItem GROUP$, "Manual part 2", "write.exe " + MakePath(SrcDir$, "2wfsp50m.wri"), "", cmoOverwrite
  461.     CreateProgmanItem GROUP$, "Manual part 3", "write.exe " + MakePath(SrcDir$, "3wfsp50m.wri"), "", cmoOverwrite
  462.     CreateProgmanItem GROUP$, "Manual part 4", "write.exe " + MakePath(SrcDir$, "4wfsp50m.wri"), "", cmoOverwrite
  463.     CreateProgmanItem GROUP$, "Manual part 5", "write.exe " + MakePath(SrcDir$, "5wfsp50m.wri"), "", cmoOverwrite
  464.     SrcDir$ = ""
  465.  
  466.     INI$ = MakePath(DEST$, "FACE.INI")
  467.     CreateIniKeyValue INI$, "Face", "WFSOUND.EXE", "+NULLFACE.FAC", cmoNone
  468.  
  469.     IF INSTDSOUND% THEN
  470.         CreateProgmanItem GROUP$, "DSOUND Info", "notepad.exe " + MakePath(DEST$, "dsound.txt"), "", cmoOverwrite
  471.     END IF
  472.  
  473.     CreateProgmanItem GROUP1$, "Media Manager", MakePath(DEST$, "sndmnger.exe"), "", cmoOverwrite
  474.  
  475.     '' Setup up default association file
  476.     CreateIniKeyValue MakePath(DEST$, "WFSOUND.INF"), "WFSound", "ActiveProfile", MakePath(DEST$, "DEFAULT.WFS"), cmoNone
  477.  
  478.     INI$ = MakePath(DEST$, "FACE.INI")
  479.     CreateIniKeyValue INI$, "Face", "WFSOUND.EXE", "+NULLFACE.FAC", cmoNone
  480.  
  481.     ''Turn on icon events only if we support the shell
  482.     s$ = LCASE$(GetIniKeyString(SYSINI$, "boot", "shell"))
  483.     IF INSTR(s$, "progman.exe") THEN
  484.         i$ = "1"
  485.     ELSEIF INSTR(s$, "ndw.exe") THEN
  486.         i$ = "1"
  487.     ELSEIF INSTR(s$, "wndt.exe") THEN
  488.         i$ = "1"
  489.     ELSE
  490.         i$ = "0"
  491.     END IF
  492.     CreateIniKeyValue MakePath(DEST$, "DEFAULT.WFS"), "Status", "Icon", i$, cmoNone
  493.     s$ = ""
  494.     i$ = ""
  495.  
  496.     '' Add new periodic event if it's not there
  497.     CreateIniKeyValue MakePath(DEST$, "WFSOUND.INF"), "Startup", "2", "Periodic Event,Random,,,,", cmoOverwrite
  498.  
  499.     '' Remove vox.drv
  500.     IF LCASE$(GetIniKeyString(SYSINI$, "drivers", "wavemapper")) = "vox.drv" THEN
  501.         s$ = GetIniKeyString(SYSINI$, "drivers", "vox.wavemapper")
  502.         CreateIniKeyValue SYSINI$, "drivers", "wavemapper", s$, cmoOverwrite
  503.     END IF
  504.  
  505.     '' Disable speech synthesis support by default
  506.     CreateIniKeyValue WININI$, "Sound API", "NoSynth", "1", cmoNone
  507.  
  508.     '' This is so SNDAPI can find the CD later on...
  509.     s$ = GetSymbolValue("STF_SRCDIR")
  510.     IF MID$(s$, LEN(s$), 1) <> "\" THEN
  511.         s$ = s$ + "\"
  512.     END IF
  513.     CreateIniKeyValue WININI$, "Sound API", "CDPath", s$, cmoOverwrite
  514.     s$ = ""
  515.  
  516.     ''Stamp the WFSABOUT resources
  517.     IF len(OWNER$) > 0 THEN
  518.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_OWNER, OWNER$ + chr$(0), len(OWNER$) + 1
  519.     ELSE
  520.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_OWNER, " " + chr$(0), 2
  521.     END IF
  522.     IF len(WORKPLACE$) > 0 THEN
  523.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_WORKPLACE, WORKPLACE$ + chr$(0), len(WORKPLACE$) + 1
  524.     ELSE
  525.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_WORKPLACE, " " + chr$(0), 2
  526.     END IF
  527.  
  528.     '' Setup Video for Windows
  529.     IF VflatdPresent() = 0 THEN
  530.        CreateSysIniKeyValue SYSINI$, "386Enh", "device", "dva.386", cmoOverwrite
  531.     END IF
  532.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  533.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  534.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  535.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  536.     IF NOT DoesIniKeyExist (SYSINI$, "Drivers", "VIDC.RT21") THEN
  537.        CreateIniKeyValue SYSINI$, "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  538.     END IF
  539.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  540.     CreateIniKeyValue WININI$, "mci extensions", "avi", "AVIVideo", cmoOverwrite
  541.     CreateIniKeyValue SYSINI$, "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  542.     CreateIniKeyValue SYSINI$, "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  543.     CreateIniKeyValue SYSINI$, "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  544.     CreateIniKeyValue SYSINI$, "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  545.     CreateIniKeyValue WINDIR$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  546.     CreateIniKeyValue WINDIR$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  547.     CreateIniKeyValue WINDIR$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  548.     Run ("regedit.exe /s " + MakePath(WINDIR$, "mplayer.reg"))
  549.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  550.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  551.     Run ("profdisp.exe")
  552.  
  553.     '' Mplayer
  554.     CreateProgmanItem "Accessories", "Media Player", MakePath(WINDIR$, "mplayer.exe"), "", cmoOverwrite
  555.  
  556.     END IF
  557.  
  558.     '' Configure Talking Applications
  559.     IF GetListItem(CHECKSTATES$, TAPPFILES) = "ON" THEN
  560.  
  561.     IF StringInList("CD Browser", TAPPSINST$) THEN
  562.         CreateProgmanItem GROUP$, "CD Browser", MakePath(DEST$, "browser.exe"), "", cmoOverwrite
  563.     END IF
  564.  
  565.     IF StringInList("Multimedia Screen Saver", TAPPSINST$) THEN
  566.         CreateProgmanItem GROUP$, "Multimedia Screen Saver", MakePath(DEST$, "mmssaver.exe"), "", cmoOverwrite
  567.         CreateIniKeyValue WININI$, "Aristosoft", "ScreenSaver", MakePath(DEST$, "mmssaver.exe"), cmoOverwrite
  568.  
  569.         INI$ = MakePath(DEST$, "MMSSAVER.INI")
  570.         CreateIniKeyValue INI$, "Settings", "SplFile", MakePath(DEST$, "default.spl"), cmoNone
  571.     END IF
  572.  
  573.     IF StringInList("Multimedia Jukebox", TAPPSINST$) THEN
  574.         CreateProgmanItem GROUP$, "Multimedia Jukebox", MakePath(DEST$, "mmjbox.exe"), "", cmoOverwrite
  575.  
  576.         INI$ = MakePath(DEST$, "MMJBOX.INI")
  577.         CreateIniKeyValue INI$, "Settings", "BoxFile", MakePath(DEST$, "default.box"), cmoNone
  578.     END IF
  579.  
  580.     IF StringInList("Wallpaper Changer", TAPPSINST$) THEN
  581.         CreateProgmanItem GROUP$, "Wallpaper Changer", MakePath(DEST$, "wally.exe"), "", cmoOverwrite
  582.         INI$ = MakePath(DEST$, "WALLY.INI")
  583.         CreateIniKeyValue INI$, "Settings", "WallFile", MakePath(DEST$, "default.wal"), cmoNone
  584.     END IF
  585.  
  586.     IF StringInList("MediaScape Changer", TAPPSINST$) THEN
  587.         CreateProgmanItem GROUP$, "MediaScape Changer", MakePath(DEST$, "scape.exe"), "", cmoOverwrite
  588.     END IF
  589.  
  590.     IF StringInList("Icon Changer", TAPPSINST$) THEN
  591.         CreateProgmanItem GROUP1$, "Icon Changer", MakePath(DEST$, "iconplus.exe"), "", cmoOverwrite
  592.     END IF
  593.  
  594.     IF StringInList("Cursor Changer", TAPPSINST$) THEN
  595.         CreateProgmanItem GROUP1$, "Cursor Changer", MakePath(DEST$, "cursor.exe") + " /foo /bar", "", cmoOverwrite
  596.     END IF
  597.  
  598.     IF StringInList("Talking Solitaire", TAPPSINST$) THEN
  599.         CreateProgmanItem GROUP2$, "Talking Solitaire", MakePath(DEST$, "tsol.exe"), "", cmoOverwrite
  600.         CreateProgmanItem GROUP2$, "How to Cheat at Solitaire", "winhelp " + MakePath(DEST$, "tsol.hlp"), "", cmoOverwrite
  601.         INI$ = MakePath(DEST$, "VOICE.INI")
  602.         CreateIniKeyValue INI$, "Voice Library", "TSOL.EXE", "+female.voi", cmoNone
  603.         INI$ = MakePath(DEST$, "FACE.INI")
  604.         CreateIniKeyValue INI$, "Face", "TSOL.EXE", "+NULLFACE.FAC", cmoNone
  605.     END IF
  606.  
  607.     IF StringInList("Talking Minesweeper", TAPPSINST$) THEN
  608.         CreateProgmanItem GROUP2$, "Talking Minesweeper", MakePath(DEST$, "tmine.exe"), "", cmoOverwrite
  609.         CreateProgmanItem GROUP2$, "How to Win Minesweeper", "winhelp " + MakePath(DEST$, "tmine.hlp"), "", cmoOverwrite
  610.     END IF
  611.  
  612.     IF StringInList("Talking Monitor", TAPPSINST$) THEN
  613.         INI$ = MakePath(DEST$, "TMON.INI")
  614.         CreateIniKeyValue INI$, "Talking Monitor", "LowResources", MakePath(DEST$, "SOUNDS\PHRASES\WARNING.wav"), cmoNone
  615.         CreateIniKeyValue INI$, "Talking Monitor", "LowMemory", MakePath(DEST$, "SOUNDS\PHRASES\WARNING.wav"), cmoNone
  616.         CreateIniKeyValue INI$, "Talking Monitor", "LowDiskSpace", MakePath(DEST$, "SOUNDS\PHRASES\DISKLOW.wav"), cmoNone
  617.         CreateProgmanItem GROUP2$, "Talking Monitor", MakePath(DEST$, "tmon.exe"), "", cmoOverwrite
  618.         INI$ = MakePath(DEST$, "VOICE.INI")
  619.         CreateIniKeyValue INI$, "Voice Library", "TMON.EXE", "+female.voi", cmoNone
  620.         INI$ = MakePath(DEST$, "FACE.INI")
  621.         CreateIniKeyValue INI$, "Face", "TMON.EXE", "+NULLFACE.FAC", cmoNone
  622.     END IF
  623.  
  624.     IF StringInList("Talking Graveyard", TAPPSINST$) THEN
  625.         INI$ = MakePath(DEST$, "TGRAVE.INI")
  626.         CreateIniKeyValue INI$, "Settings", "BurySoundFile", MakePath(DEST$, "SOUNDS\FUNNYSND\CHL_AARG.wav"), cmoNone
  627.         CreateIniKeyValue INI$, "Settings", "KillSoundFile", MakePath(DEST$, "SOUNDS\HUMANSND\ELAUGH.wav"), cmoNone
  628.         CreateProgmanItem GROUP2$, "Talking Graveyard", MakePath(DEST$, "tgrave.exe"), "", cmoOverwrite
  629.     END IF
  630.  
  631.     IF StringInList("Talking Clock", TAPPSINST$) THEN
  632.         CreateProgmanItem GROUP2$, "Talking Clock", MakePath(DEST$, "tclock.exe"), "", cmoOverwrite
  633.         INI$ = MakePath(DEST$, "VOICE.INI")
  634.         CreateIniKeyValue INI$, "Voice Library", "TCLOCK.EXE", "+female.voi", cmoNone
  635.         INI$ = MakePath(DEST$, "FACE.INI")
  636.         CreateIniKeyValue INI$, "Face", "TCLOCK.EXE", "+NULLFACE.FAC", cmoNone
  637.     END IF
  638.  
  639.         IF StringInList("Talking PIM", TAPPSINST$) THEN
  640.             CreateProgmanItem GROUP2$, "Talking PIM", MakePath(DEST$, "tpim.exe"), "", cmoOverwrite
  641.         INI$ = MakePath(DEST$, "VOICE.INI")
  642.             CreateIniKeyValue INI$, "Voice Library", "TPIM.EXE", "+female.voi", cmoNone
  643.         INI$ = MakePath(DEST$, "FACE.INI")
  644.             CreateIniKeyValue INI$, "Face", "TPIM.EXE", "+NULLFACE.FAC", cmoNone
  645.     END IF
  646.  
  647.     IF StringInList("Talking Calendar", TAPPSINST$) THEN
  648.         CreateProgmanItem GROUP2$, "Talking Calendar", MakePath(DEST$, "tcal.exe"), "", cmoOverwrite
  649.         INI$ = MakePath(DEST$, "VOICE.INI")
  650.         CreateIniKeyValue INI$, "Voice Library", "TCAL.EXE", "+female.voi", cmoNone
  651.         INI$ = MakePath(DEST$, "FACE.INI")
  652.         CreateIniKeyValue INI$, "Face", "TCAL.EXE", "+NULLFACE.FAC", cmoNone
  653.     END IF
  654.  
  655.         IF StringInList("Talking Clock", TAPPSINST$) OR StringInList("Talking PIM", TAPPSINST$) OR StringInList("Talking Calendar", TAPPSINST$) THEN
  656.         INI$ = MakePath(DEST$, "SCHEDAPI.INI")
  657.         CreateIniKeyValue INI$, "Settings", "HolidayFile", MakePath(DEST$, "TCAL.HOL"), cmoNone
  658.         CreateIniKeyValue INI$, "Settings", "DefaultApptBook", MakePath(DEST$, "DEFAULT.APP"), cmoNone
  659.     END IF
  660.  
  661.     IF StringInList("Talking Calculator", TAPPSINST$) THEN
  662.         CreateProgmanItem GROUP2$, "Talking Calculator", MakePath(DEST$, "tcalc.exe"), "", cmoOverwrite
  663.         CreateIniKeyValue WININI$, "FONTS", "LCD (VGA Res)", "lcd.fon", cmoNone
  664.         CreateIniKeyValue WININI$, "FONTS", "LCD (8514a Res)", "lcdbig.fon", cmoNone
  665.          INI$ = MakePath(DEST$, "VOICE.INI")
  666.          CreateIniKeyValue INI$, "Voice Library", "TCALC.EXE", "+female.voi", cmoNone
  667.          INI$ = MakePath(DEST$, "FACE.INI")
  668.          CreateIniKeyValue INI$, "Face", "TCALC.EXE", "+NULLFACE.FAC", cmoNone
  669.     END IF
  670.  
  671.     IF StringInList("WFS Sound Editor", TAPPSINST$) THEN
  672.         CreateProgmanItem GROUP1$, "WFS Edit", MakePath(DEST$, "wfsedit.exe"), "", cmoOverwrite
  673.     END IF
  674.  
  675.     IF StringInList("Intruder Alert", TAPPSINST$) THEN
  676.         INI$ = MakePath(DEST$, "ALERT.INI")
  677.         CreateIniKeyValue INI$, "Settings", "AlarmSound", MakePath(DEST$, "SOUNDS\FUNNYSND\ALARM.wav"), cmoNone
  678.         CreateProgmanItem GROUP2$, "Intruder Alert", MakePath(DEST$, "alert.exe"), "", cmoOverwrite
  679.     END IF
  680.  
  681.     IF StringInList("Groupie", TAPPSINST$) THEN
  682.         CreateProgmanItem GROUP1$, "Groupie", MakePath(DEST$, "groupie.exe"), "", cmoOverwrite
  683.     END IF
  684.  
  685.     IF StringInList("Post This!", TAPPSINST$) THEN
  686.         CreateProgmanItem GROUP1$, "Post This!", MakePath(DEST$, "postit.exe"), "", cmoOverwrite
  687.     END IF
  688.  
  689.         IF StringInList("Windows FX", TAPPSINST$) THEN
  690.             CreateProgmanItem GROUP1$, "Windows FX", MakePath(DEST$, "fx.exe"), "", cmoOverwrite
  691.         END IF
  692.  
  693.         IF StringInList("MouseMeter", TAPPSINST$) THEN
  694.             CreateProgmanItem GROUP1$, "MouseMeter", MakePath(DEST$, "mmeter.exe"), "", cmoOverwrite
  695.         END IF
  696.  
  697.         IF StringInList("Icon Editor", TAPPSINST$) THEN
  698.             CreateProgmanItem GROUP1$, "Animated Icon Editor", MakePath(DEST$, "icmedit.exe"), "", cmoOverwrite
  699.         END IF
  700.  
  701.         IF StringInList("IconMotion", TAPPSINST$) THEN
  702.             CreateProgmanItem GROUP1$, "IconMotion", MakePath(DEST$, "iconmotn.exe"), "", cmoOverwrite
  703.         INI$ = MakePath(DEST$, "iconmotn.ini")
  704.         CreateIniKeyValue INI$, "Settings", "ICMPath", MakePath(DEST$, "icm"), cmoOverwrite
  705.         END IF
  706.  
  707.     InstSSCpl% = IDNO
  708.  
  709.     IF StringInList("Waterfall SceneSaver", TAPPSINST$) THEN
  710.         CreateIniKeyValue MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Waterfall", "ModulePath", MakePath(SSDir$, "WFALL.AD"), cmoOverwrite
  711.         InstSSCpl% = IDYES
  712.     END IF
  713.  
  714.     IF StringInList("Lake SceneSaver", TAPPSINST$) THEN
  715.         CreateIniKeyValue MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Lake", "ModulePath", MakePath(SSDir$, "LAKE.AD"), cmoOverwrite
  716.         InstSSCpl% = IDYES
  717.     END IF
  718.  
  719.     IF StringInList("El Capitan SceneSaver", TAPPSINST$) THEN
  720.         CreateIniKeyValue MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.El Capitan", "ModulePath", MakePath(SSDir$, "ELCAP.AD"), cmoOverwrite
  721.         InstSSCpl% = IDYES
  722.     END IF
  723.  
  724.     IF StringInList("Snow SceneSaver", TAPPSINST$) THEN
  725.         CreateIniKeyValue MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Snow", "ModulePath", MakePath(SSDir$, "SNOW.AD"), cmoOverwrite
  726.         InstSSCpl% = IDYES
  727.     END IF
  728.  
  729.     IF (InstSSCpl% = IDYES) AND (SSDir$ = DEST$) THEN
  730.         CreateProgmanItem GROUP1$, "Screen Saver Configuration", "control.exe Desktop", "", cmoOverwrite
  731.     END IF
  732.     END IF
  733.  
  734.     '' Perform sound file installation
  735.     IF GetListItem(CHECKSTATES$, SOUNDFILES) = "ON" THEN
  736.     IF StringInList("Star Trek Stubs", SOUNDSINST$) THEN
  737.         ''Set the StarTrek .ESF pointer variable correctly...
  738.         path$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  739.         IF path$ <> "" THEN
  740.         path$ = MakePath(path$, "st_res\st_snd.dll")
  741.         CreateIniKeyValue WININI$, "Sound API", "StarTrek", path$, cmoOverwrite
  742.         END IF
  743.     END IF
  744.     END IF
  745.  
  746.     '' Install DSOUND.DLL as the wave driver if there isn't one already, somewhere...
  747.     IF INSTDSOUND% AND EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  748.     CreateIniKeyValue SYSINI$, "drivers", "wave", "DSOUND.DLL", cmoOverwrite
  749.     END IF
  750. END SUB
  751.  
  752.  
  753.  
  754. '' Remove all files and directories...
  755.  
  756. SUB DoUninstall STATIC
  757.     res% = sndPlaySound(MakePath(INSTSNDDIR$, "uninstal.wav"), 3)
  758.     IF IDYES = DoMsgBox("Are you sure you want to remove Wired for Sound Pro CD from your system?", "Wired for Sound", MB_YESNO) THEN
  759.     DEST$ = GetIniKeyString(WININI$, "Aristosoft", "WFS")
  760.     IF DEST$ <> "" THEN
  761.         old% = ShowWaitCursor()
  762.  
  763.         SendProgmanCommand "[DeleteGroup(""WFS Pro CD"")]"
  764.         SendProgmanCommand "[DeleteGroup(""WFS Utilities"")]"
  765.         SendProgmanCommand "[DeleteGroup(""Talking Apps"")]"
  766.  
  767.         KillFiles DEST$
  768.  
  769.         KillFile MakePath(WINDIR$, "TPIM.INI")
  770.  
  771.         KillFile MakePath(WINDIR$, "LAKE.SCR")
  772.         F$ = GetIniKeyString(MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Lake", "ModulePath")
  773.         KillFile F$
  774.         RemoveIniSection MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Lake", cmoNone 
  775.  
  776.         KillFile MakePath(WINDIR$, "ELCAP.SCR")
  777.         F$ = GetIniKeyString(MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.El Capitan", "ModulePath")
  778.         KillFile F$
  779.         RemoveIniSection MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.El Capitan", cmoNone 
  780.  
  781.         KillFile MakePath(WINDIR$, "SNOW.SCR")
  782.         F$ = GetIniKeyString(MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Snow", "ModulePath")
  783.         KillFile F$
  784.         RemoveIniSection MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Snow", cmoNone 
  785.  
  786.         KillFile MakePath(WINDIR$, "WFALL.SCR")
  787.         F$ = GetIniKeyString(MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Waterfall", "ModulePath")
  788.         KillFile F$
  789.         RemoveIniSection MakePath(WINDIR$, "CONTROL.INI"), "Screen Saver.Waterfall", cmoNone 
  790.  
  791.         IF EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  792.             r% = DoMsgBox("Do you want to remove DSOUND.DLL (the PC speaker sound driver) as well?  It may be required by other applications.", "WFS Pro", MB_YESNO)
  793.         IF r% = IDYES THEN
  794.             KillFile MakePath(SYSDIR$, "DSOUND.DLL")
  795.             KillFile MakePath(SYSDIR$, "DSCPL.CPL")
  796.         END IF
  797.         END IF
  798.  
  799.         IF EXISTS(MakePath(SYSDIR$, "SPRLIB.DLL")) THEN
  800.             r% = DoMsgBox("Do you want to remove SPRLIB.DLL (the Aristosoft sprite manager) as well?  It may be required by other Aristosoft applications.", "WFS Pro", MB_YESNO)
  801.         IF r% = IDYES THEN
  802.             KillFile MakePath(SYSDIR$, "SPRLIB.DLL")
  803.         END IF
  804.         END IF
  805.  
  806.         r% = DoMsgBox("Do you want to remove the Sound API section from WIN.INI.  Don't do this if you are using other Aristosoft products.", "WFS Pro", MB_YESNO)
  807.         IF r% = IDYES THEN
  808.             RemoveIniSection WININI$, "Sound API", cmoNone
  809.         END IF
  810.  
  811.         RestoreCursor old%
  812.  
  813.         i% = DoMsgBox("Wired for Sound Pro CD has been removed.  You can run Setup later to re-install it.", "Wired for Sound", MB_OK)
  814.  
  815.         END
  816.     ELSE
  817.         i% = DoMsgBox("Wired for Sound Pro CD is not installed or cannot be found!", "Wired for Sound", MB_OK)
  818.     END IF
  819.     END IF
  820. END SUB
  821.